其他
数据呈现 | 用 pyecharts 绘制时间线动图
pyecharts是一款将 python 与 echarts 结合的强大的数据可视化工具。
”准备数据
然后你需要在电脑上安装 pyecharts 包,直接在 Jupyter notebook 上输入以下命令,等待安装即可。
!pip install pyecharts # 在cmd安装输入pip install pyecharts
import pandas as pd
import numpy as np
data = pd.read_excel('C:/Users/yeahww/Desktop/CH0206.xlsx',sheet_name = 'Sheet2')
df1=data.set_index("地区") #将“地区”设为索引
df1.head(10) #显示前10行
条形图
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
def timeline_bar(df,year): #定义函数
df=df1.sort_values(year)
x=list(df.index)
y=list(df[year])
bar = (
Bar(init_opts = opts.InitOpts(theme = ThemeType.DARK, #主题为黑色,可选择WHITE
height = "650px"))
.add_xaxis(x)
.add_yaxis("",y)
.reversal_axis()
.set_series_opts(label_opts = opts.LabelOpts(position = "right"))
.set_global_opts(title_opts = opts.TitleOpts(title = year + "各省市人口数量" ))
)
return bar
bar = timeline_bar(df1,'2017') #选择2017年的数据进行绘制
bar.render_notebook()
条形时间线
from pyecharts.charts import Timeline
TL = (Timeline(init_opts = opts.InitOpts(theme = ThemeType.DARK,
height = "650px"))
.add_schema(play_interval = 300, #设置播放效果
is_auto_play = True,
pos_left = 20,
width = 800
)
)
for i in df1.columns: # 循环绘制每一年的条形图
bar = timeline_bar(df1,i)
TL.add(bar,i)
TL.render("timeline.html")
TL.render_notebook()
地图
from pyecharts.charts import Map
def timeline_map(df,year): #定义函数
df = data.sort_values(year,ascending=False)
series = np.array(data[['地区',year]])
max_value = int(data[year].max())
min_value = int(data[year].min())
map = (
Map()
.add("",series , "china")
.set_global_opts(
title_opts = opts.TitleOpts(title = year + "各省市人口数量"),
visualmap_opts = opts.VisualMapOpts(max_ = max_value ,min_ = min_value),
)
)
return map
timeline_map(data,'2017').render_notebook()
注意:如果你的数据中,省份是以“北京市”、“浙江省”、“西藏自治区”出现的,你需要将其转化成“北京”、“浙江”、“西藏”这样 pyecharts 地图可以识别的样式。你可以手动修改,毕竟只有31个数据量,也可以尝试运行以下代码进行修改。
def province_change(s):
if len(s)==4 or s=="内蒙古自治区":
r=s[:3]
else:
r=s[:2]
return r
df['地区']=df['地区'].apply(lambda x:province_change(x))
时间线地图
from pyecharts import options as opts
from pyecharts.charts import Bar, Page, Pie, Timeline
tl = (Timeline(init_opts=opts.InitOpts(theme=ThemeType.WHITE,height="800px"))
.add_schema(play_interval=300,is_auto_play=True,pos_left=20,width=800)
)
for i in df1.columns:
bar=timeline_map(df1,i)
tl.add(bar, i)
tl.render("timeline2.html") # 保存成html文件,你可以在自己的工作路径中找到timeline2这个文件
tl.render_notebook()
►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
工具&方法丨经济学圈特供 使用Jupyter Notebook的12个小技巧
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注